Automated Debugging with Tractable Probabilistic Programming
نویسندگان
چکیده
Probabilistic programming languages allow domain experts to specify generative models in a high-level language, and reason about those models using domainindependent algorithms. Given an input, a probabilistic program generates a distribution over outputs. In this work, we instead use probabilistic programming to explicitly reason about the distribution over programs, rather than outputs. We propose Tractable Probabilistic Programs (TPP), a language to represent rich probabilistic dependencies between different parts of a program; we make use of the recent work on sum-product networks to ensure that inference remains tractable. We explain how TPP can be applied to the problem of automated program debugging; given a corpus of buggy programs, a TPP model can be learned to capture a probability distribution over the location of the bug. The model can also incorporate additional sources of information, such as coverage statistics on test suites. We also briefly outline how TPP can be used to solve the more ambitious problem of fault correction, i.e. predicting the most probable true program conditioned on a buggy one. The ability to learn common patterns of bugs and incorporate multiple sources of information potentially makes TPP useful as a unifying framework for automated program debugging.
منابع مشابه
Learning Tractable Probabilistic Models for Fault Localization
In recent years, several probabilistic techniques have been applied to various debugging problems. However, most existing probabilistic debugging systems use relatively simple statistical models, and fail to generalize across multiple programs. In this work, we propose Tractable Fault Localization Models (TFLMs) that can be learned from data, and probabilistically infer the location of the bug....
متن کاملAutomated Variational Inference in Probabilistic Programming
We present a new algorithm for approximate inference in probabilistic programs, based on a stochastic gradient for variational programs. This method is efficient without restrictions on the probabilistic program; it is particularly practical for distributions which are not analytically tractable, including highly structured distributions that arise in probabilistic programs. We show how to auto...
متن کاملProbabilistic Declarative Debugging
We present a probabilistic approach to the search strategy for declarative debugging. We focus on diagnosing wrong answers in pure Prolog programs but the approach can be adapted to other languages (for example, functional languages) and bug symptoms. Drawing information from source code and the execution of passed and failed test cases, different search heuristics are combined using probabilit...
متن کاملChallenges in automated verification and synthesis for molecular programming
Molecular programming is concerned with building synthetic nanoscale devices from molecules, which can be programmed to autonomously perform a specific task. Several artifacts have been demonstrated experimentally, including DNA circuits that can compute a logic formula and molecular robots that can transport cargo. In view of their natural interface to biological components, many potential app...
متن کاملA Framework for Planning in Continuous-time Stochastic Domains
We propose a framework for policy generation in continuoustime stochastic domains with concurrent actions and events of uncertain duration. We make no assumptions regarding the complexity of the domain dynamics, and our planning algorithm can be used to generate policies for any discrete event system that can be simulated. We use the continuous stochastic logic (CSL) as a formalism for expressi...
متن کامل